package co.com.sewebpoint.ws;

import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

import org.springframework.beans.factory.annotation.Autowired;


import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import co.com.sewebpoint.dto.SucursalWS;
import co.com.sewebpoint.dto.SucursalWS;
import co.com.sewebpoint.exception.DaoExceptionSE;
import co.com.sewebpoint.exception.ServiceExceptionSE;
import co.com.sewebpoint.model.Sucursal;
import co.com.sewebpoint.model.Sucursal;
import co.com.sewebpoint.service.SucursalService;
import co.com.sewebpoint.service.SucursalService;


/***
 * 
 * @author Esteban Hurtado y sara Tamayo
 * @version 1.0
 * 
 * Clase WebService Para Sucursal
 *
 */



@Path("Sucursal")
@Component

public class SucursalWebService {
	
	@Autowired
	private SucursalService sucursalService;
	
	/**
	 * Metodo que retorna la lista de Sucursales existente en l BD
	 * 
	 * 
	 * @return Lista de Sucursales existentes en la BD
	 * @throws RemoteException Ocurre algun error en la conexion a la base de datos
	 *
	 */
	
	
	@GET
	@Produces(MediaType.APPLICATION_JSON)
	
	public List<SucursalWS> obtener() throws RemoteException{
		
		
		List<SucursalWS> items = new ArrayList<SucursalWS>();
		List<Sucursal> itemSpring = new ArrayList<Sucursal>();
		
	
		try {
			itemSpring = sucursalService.obtener();
			for (Sucursal item :itemSpring){
				
				SucursalWS itemWS = new SucursalWS();
				
				
				itemWS.setId(item.getId());
				itemWS.setNombre(item.getNombre());
				itemWS.setDescripcion(item.getDescripcion());
				
				
				
				
				items.add(itemWS);
				
			}
			
			
			
		} catch (DaoExceptionSE e) {
			throw new RemoteException(e.getMessage());
		}
		
		
		
		return items;
		
		
	}
	
	
	
	

}
